package com.vint.leetcode;


/*
 * 1.easy
 * 判断正方形
 */
public class Leetcode593 {
	public boolean validSquare(int[] p1, int[] p2, int[] p3, int[] p4) {
		return triangle(p1, p2, p3) && triangle(p1, p2, p4) && triangle(p1,p3,p4) && triangle(p2,p3,p4);

	}

	public int distance(int[] p1, int[] p2) {
		return (p1[0] - p2[0]) * (p1[0] - p2[0]) + (p1[1] - p2[1]) * (p1[1] - p2[1]);
	}
	public boolean triangle(int[] p1, int[] p2, int[] p3) {
		int d12 = distance(p1, p2);
		int d13 = distance(p1, p3);
		int d23 = distance(p2, p3);
		if(d12 > d13 && d12 > d23){
			if(d12 == d13 + d23 && d13 == d23) return true;
		}
		if(d13 > d12 && d13 > d23){
			if(d13 == d12 + d23 && d12 == d23) return true;
		}
		if(d23 > d12 && d23 > d13){
			if(d23 == d13 + d12 && d13 == d12) return true;
		}
		return false;
	}
  }
